package com.miplus.ccrm.core.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 还款计划文件(业务表)
 * @TableName iou_repay_plan
 */
@TableName(value ="pl_repay_plan")
@Data
public class IouRepayPlan implements Serializable {
    /**
     * 还款计划id
     */
    @TableId
    private Long repayPlanId;

    /**
     * 借据号
     */
    private String loanInvoiceId;

    /**
     * 租户号
     */
    private String tenantId;

    /**
     * 借款人
     */
    private String borrowerUserId;

    /**
     * 商户编号
     */
    private String merchantId;

    /**
     * 商户名称
     */
    private String merchantName;

    /**
     * 总期次
     */
    private Integer repayNum;

    /**
     * 当前期次
     */
    private Integer currentNum;

    /**
     * 开始时间
     */
    private Date startDate;

    /**
     * 应还时间
     */
    private Date preRepayDate;

    /**
     * 宽限日期
     */
    private Date granceDate;

    /**
     * 收益天数(若无则为空)
     */
    private Integer profitDays;

    /**
     * 期初计息余额（若无则不传）
     */
    private BigDecimal beforeCalcPrincipal;

    /**
     * 剩余本金
     */
    private BigDecimal leftPrincipal;

    /**
     * 预期还款金额（预期还款金额=应还本金+应还利息+手续费+罚息+复利）
     */
    private BigDecimal preRepayAmt;

    /**
     * 应还本金
     */
    private BigDecimal preRepayPrincipal;

    /**
     * 应还利息
     */
    private BigDecimal preRepayInterest;

    /**
     * 应还手续费
（若无则传0）

     */
    private BigDecimal preRepayFee;

    /**
     * 应付逾期罚息
     */
    private BigDecimal preOverdueFee;

    /**
     * 复利（若无则传0）
     */
    private BigDecimal preCompoundInterest;

    /**
     * 剩余应还总金额
     */
    private BigDecimal leftRepayAmt;

    /**
     * 剩余应还本金
     */
    private BigDecimal leftRepayPrincipal;

    /**
     * 剩余应还利息
     */
    private BigDecimal leftRepayInterest;

    /**
     * 剩余应还手续费
     */
    private BigDecimal leftRepayFee;

    /**
     * 剩余逾期罚息
     */
    private BigDecimal leftOverdueFee;

    /**
     * 剩余应还账户管理费
（若无则传0）

     */
    private BigDecimal leftCompoundInterest;

    /**
     * 最近实还时间
     */
    private Date lastRepayDate;

    /**
     * 最近还款金额
     */
    private BigDecimal lastRepayAmt;

    /**
     * 还款计划状态[详见EnumRepayPlanStatus]
     */
    private String repayPlanStatus;
    /**
     * 还款计划状态[详见EnumRepayPlanStatus]
     */
    @TableField(exist  = false)
    private String repayPlanStatusDesc;

    /**
     * 代偿状态0-未代偿，1-已被代偿，2-已退回
     */
    private String compensatoryStatus;

    /**
     * 应还用户id
     */
    private String preRepayUserId;

    /**
     * 实还用户
（若无则不传）

     */
    private String repayUserId;

    /**
     * 免息天数
：宽限时间-应还日期

     */
    private Integer freeInterestDay;

    /**
     * 罚息计算时间（若无则不传）
     */
    private String calcOverdueFeeDate;

    /**
     * 临时缓存罚息
（若无则不传）

     */
    private BigDecimal tempOverdueFee;

    /**
     * 结算罚息
（若无则不传）

     */
    private BigDecimal settleOverdueFee;

    /**
     * 还款手续费
（若无则不传）

     */
    private BigDecimal repaymentFee;

    /**
     * 提前还款手续费
（若无则不传）

     */
    private BigDecimal advanceRepayFee;

    /**
     * 提前还款利息
（若无则不传）

     */
    private BigDecimal advanceRepayInterest;

    /**
     * 还款流水
     */
    private String repaySerialNo;

    /**
     * 逾期天数
     */
    private Integer overdueDays;

    /**
     * 减免利息
     */
    private BigDecimal interestEffect;

    /**
     * 减免费用(若无则不传)
     */
    private BigDecimal feeEffect;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}